package edu.nf.bs.dao;

import edu.nf.bs.entity.DeliveryMan;
import edu.nf.bs.entity.OrderInfo;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 订单dao
 */
public interface OrderInfoMapper {
    /**
     * 计算今日受益
     * @return
     */
    Double getPrice();

    /**
     * 查询本月收入
     * @return
     */
    Double getMysqlDate();

    /**
     * 查询当天的订单数量
     * @return
     */
    Integer getMonthOrder();

    /**
     * 获取一个月的订单数量
     * @return
     */
    Integer getMonthOrders();

    /**
     * 查询派单量最多的一个快递员
     * @return
     */
    DeliveryMan getOrderMax();
    /**
     * 订单查询
     * @param orderId 查询条件，根据省份查询
     * @param pageNum 当前页 @Param 注解的 value 值必须是 pageNum
     * @param pageSize 每页显示记录数 @Param 注解的 value 值必须是 pageSize
     * @return
     */
    List<OrderInfo> listOrder(
            @Param("orderId") String orderId,
            @Param("pageNum") Integer pageNum,
            @Param("pageSize") Integer pageSize
    );

    /**
     * 查询12个月份的收入
     * @return
     */
    Double[] getYearPrice();

    /**
     * 添加订单
     * @param orderInfo
     * @return
     */
    Integer addOrderInfo(OrderInfo orderInfo);

    Integer updateOrderInfo(@Param("orderId") String orderId,@Param("orderPrice") float orderPrice);

    /**
     * 修改订单物流编号
     */
    Integer updateLogistics(@Param("expressId") String expressId,@Param("logisticsId") String logisticsId);


    OrderInfo queryLogistics(@Param("expressId") String expressId);

    List<OrderInfo> queryOrderInfo(@Param("userId") String userId,@Param("pageNum") Integer pageNum,
                                   @Param("pageSize") Integer pageSize);

    Integer updateOrderStatus(@Param("logisticsId")String logisticsId);

}
